package com.jinzhi.jzweb.service.resourceLibrary;


import com.jinzhi.common.base.CoreService;
import com.jinzhi.common.utils.Result;
import com.jinzhi.eventresource.main.EventresourceAllocationDO;
import com.jinzhi.jzweb.domain.resourceLibrary.SecretKey;
import com.jinzhi.jzweb.pojo.RegionItemVO;

import java.util.List;
import java.util.Map;

/**
 * (SecretKey)表服务接口
 *
 * @author makejava
 * @since 2024-05-09 10:24:37
 */
public interface SecretKeyService extends CoreService<SecretKey> {

    /**
     * 新增秘钥信息
     * @param secretKey
     * @return
     */
    Result saveSecretKey(SecretKey secretKey);

    /**
     * 修改秘钥信息
     * @param secretKey
     * @return
     */
    Result editSecretKey(SecretKey secretKey);

    /**
     * 分页查询秘钥信息
     * @param secretKey
     * @return
     */
    Result getSecretKyPage(SecretKey secretKey);

    /**
     * 根据资源id查询详情
     * @param id
     * @return
     */
    SecretKey getSecretKy(Long id);


    /**
     * 根据资源id查询详情
     * @return
     */
    Map<String, List<EventresourceAllocationDO>> getAddSecretKy();

    /**
     * 每天凌晨效验秘钥是否过期
     */
    void timingEffect();


    /**
     * 根据秘钥id删除秘钥，删除相关秘钥资源
     * @param id
     * @return
     */
    Result removeById(Long id);

    /**
     * 根据用户id验证是否拥有资源权限
     * @param userId
     * @param allocationId
     * @return
     */
    Result permissionVerification(Long userId,Long allocationId);

    List<RegionItemVO> getRegionTree();
}

